package pers.wensheng.patterns.structural_pattern.adapter_pattern.object_adapter_pattern;

import pers.wensheng.patterns.structural_pattern.adapter_pattern.object_adapter_pattern.entity.SDCard;
import pers.wensheng.patterns.structural_pattern.adapter_pattern.object_adapter_pattern.entity.TFCard;

/**
 * 适配器类，
 * 对象适配器模式，通过成员对象调用
 * 对象适配器模式要比类适配器模式好一些
 * SD卡适配TF卡
 *
 * 对象适配器模式：能将TFCard多种卡转成SDCard多种卡
 */
public class SDAdapterTF  implements SDCard {

    /**
     * 聚合适配者类
     */
    private TFCard tfCard;

    public SDAdapterTF(TFCard tfCard){
        this.tfCard = tfCard;
    }

    /**
     * 适配器方法
     *  从SD卡到TF卡方法转换，读数据
     * @return
     */
    @Override
    public String readSD() {
        System.out.println("我们使用的是适配器读取 TFCard 数据");
        return tfCard.readTF();
    }

    /**
     * 适配器方法
     *  从SD卡到TF卡方法转换，写数据
     * @param msg
     */
    @Override
    public void writeSD(String msg) {
        System.out.println("我们使用的是适配器写 TFCard 数据");
        tfCard.writeTF(msg);
    }
}
